package com.lakeworks.service;


import com.github.pagehelper.PageInfo;
import com.lakeworks.common.core.domain.AjaxResult;
import com.lakeworks.common.domain.channel.ticket.BarcodeVo;
import com.lakeworks.common.domain.channel.ticket.TicketAdvance;
import com.lakeworks.common.domain.channel.ticket.TicketFactory;
import com.lakeworks.common.domain.ticket.TktClaims;
import com.lakeworks.common.domain.ticket.TktReclaim;
import com.lakeworks.common.domain.ticket.TktTicket;
import com.lakeworks.decision.base.Decision;
import com.lakeworks.domain.vo.TicketBackVo;
import com.lakeworks.event.NotreachedEvent;
import org.springframework.http.ResponseEntity;

import java.util.List;
import java.util.Map;

/**
 * 工单Service接口
 *
 * @author lake
 * @date 2023-07-17
 */
public interface ITktTicketService {


    AjaxResult addTktTicket(TktTicket tktTicket);


    AjaxResult ticketDatil(long ticketId);

    PageInfo<TktTicket> selectTktTicketList(TktTicket tktTicket);

    AjaxResult updateTicket(TicketBackVo ticketBackVo);

    AjaxResult notreached(NotreachedEvent event);

    AjaxResult backTicket(TicketBackVo ticketBackVo);


    AjaxResult getOptions(Long nodeId, Long ticketId);

    AjaxResult getTicketByOrderNo(String orderNo);

    public void runDecision(List<Decision> list, Integer processId);


    public void addFile(TktTicket tktTicket, Long processId);

    AjaxResult getClaims(Long ticketId);


    public int updateWashMode(List<BarcodeVo> barcodeVos);


    public AjaxResult closeTicket(Long id);

    TktTicket selectTktTicketBychannelId(Long channelId, Long channelTicketId);

    int insertTktTicket(TktTicket ticket);

    int updateTktTicket(TktTicket tktTicket);

    Long getChannelId(String orderNo);

    public TktTicket selectTktTicketById(Long id);


    public Map<String,Long> getTimeoutNum();

}
